#include "ros/ros.h"
#include "std_msgs/String.h"

/**
 * 接收到话题的消息，回调函数会被调用
 */
void chatterCallback(const std_msgs::String::ConstPtr& msg)
{
  // 打印收到的消息
  ROS_INFO("I heard: [%s]", msg->data.c_str());
}

int main(int argc, char **argv)
{
  ros::init(argc, argv, "listener");
  ros::NodeHandle n;
  /**
   * new了ros::Subscriber的类
   * sub类订阅了“chatter”话题
   * 指定了回调函数chatterCallback，每当话题内有数据发布时，chatterCallback就会被调用
   */
  ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback);
  ros::spin();

  return 0;
}
